    // 全选选中所有
    $("input[name=chooseall]").on("click", function () {
        //获取全选节点
        const isChoose = $("input[name=chooseall]").prop("checked");
        if (isChoose) {
            //商品全选
            $("input[name=choose]").prop("checked", true);
            //店铺选择
            $("input[name=chooseallself]").prop("checked", true);
        } else {
            $("input[name=choose]").prop("checked", false);
            $("input[name=chooseallself]").prop("checked", false);
        }
    });
    // 店铺全选选中店铺的所有
    $("input[name=chooseallself]").on("click", function () {
        const isChoose = $("input[name=chooseallself]").prop("checked");
        if (isChoose) {
            $("input[name=choose]").prop("checked", true);
        } else {
            $("input[name=choose]").prop("checked", false);
            //不选择总全选框
            $("input[name=chooseall]").prop("checked", false);
        }
    });
       // 创建数组接收CheckBox的值
       let isChecked = new Array(ulLen);
       // 点击CheckBox
    $("input[name=choose").on("click", function () {
        // 建立开关
        let otherChecked = true;
        // 接收当前框的值
        let fla = $(this).prop("checked");
        // 判断当前框是第几个
        let isNumber = $(this).parent().parent().index();//index()判断节点在父节点的位置，从0开始
        // 循环查找非当前勾选框的值
        for (let index = 0; index < ulLen; index++) {
            if (index != isNumber) {
                // 将非当前的勾选框值设置到数组中
                let isO = $(".cartList").find($("input[name=choose")).eq(1).prop("checked");//eq()选择第几个节点
                isChecked.push(isO);
            }
        }
        // 循环勾选框判断数组的值
        for (const index in isChecked) {
            const element = isChecked[index];
            console.log(`数组值${element}`);
            if (element == false) {
            //  循环判断是否有CheckBox没有被选中,如果有一个没有选中那么都是false
                otherChecked = false;
                break;
            }
            // 判断数组的所有值和当前勾选框的值
            //  如果当前选中以及其他商品都是选中状态，那么将选中店铺全选
            if (otherChecked == fla) {
                $("input[name=chooseallself]").prop("checked", true);
            } else {
                //未选中都将取消店铺和所有的全选功能
                $("input[name=chooseallself]").prop("checked", false);
                $("input[name=chooseall]").prop("checked", false);
            }
        }
    });
        // 创建开关，控制关闭信息
        let isShow = false;
        //当点击关闭的时候按钮设置为打开，反之同理
         $(".closePage").click(function () {
              if (isShow == true) {
                  $(".closePage").html("关闭");
                  isShow = false;
              } else {
                  $(".closePage").html("打开");
                  isShow = true;
              }
            //jQuery的动画效果
              $(".menuBr ~ div").fadeToggle("slow");
          });
              // 删除
    $(".delShopping").click(function () {
        // 移除本身的父节点所有信息
        $(this).parent().parent().remove();
        // 当移除完所有信息后隐藏结算
        if ($(".cartList ul").length == 0) {
            $(".endPrice").hide();
        }
    });
        // 创建数组，个数为商品的个数，并附初值为1
        let timeArr = new Array();
        const ulLen = $(" .cartList ul").length;
        for (let index = 0; index < ulLen; index++) {
          //循环将1赋值给数组
            timeArr.push(1);
        }
           // 点击累加 变化输入框的数量...清掉减到为1的样式
   $("input[name=plus]").on("click", function () {
    // 当前节点时该父元素的第几个元素
    const thisNum = $(this).parent().parent().index();
    // 当前个数累加
    timeArr[thisNum] = timeArr[thisNum] + 1;
    //清除个数减到“1”的样式
    $(this).siblings("input[name=amount]").css({ "color": "black", "background": "none" });
    $(this).siblings("input[name=amount]").val(timeArr[thisNum]);
   });
    // 点击累减 变化输入框的数量...减到为1时设置样式
    $("input[name=minus]").on("click", function () {
        // 当前节点时该父元素的第几个元素
        const thisNum = $(this).parent().parent().index();
      // 固定个数只能减到1
        if (timeArr[thisNum] > 1) {
            timeArr[thisNum] = timeArr[thisNum] - 1;
            $(this).siblings("input[name=amount]").val(timeArr[thisNum]);          
            allPrice(this, timeArr[thisNum]);
        }
      //减到1的时候设置样式，变为灰色
        if (timeArr[thisNum] === 1) {
            $(this).siblings("input[name=amount]").css({ "color": "gray", "background": "#eeeeee" });
        }
    });
     // 封装一个设置价格的方法
     function allPrice(thisSelf, num) {
        //  获取当前商品的价格
          let dPrice = $(thisSelf).parent().parent().children("li").children("input[name=price]").val();
       //  价格*数量
          let onePrice = parseFloat(dPrice * num).toFixed(2);//截取 （获取价格字符串），从第二位开始的后面所有字符
      //设置当前商品的总价格
          $(thisSelf).parent().parent().children("#price").html("￥" + onePrice);
      }
      allPrice(this, timeArr[thisNum]);
      for (let index = 0; index < ulLen; index++) {
        // 判断勾选框是否勾选，如果勾选则结算
        isCheck = $(".cartList").find($("input[name=choose")).eq(index).prop("checked");
        if (isCheck) {
            // 循环得到价格信息
            let priceO = $(".cartList ul").eq(index).children("#price").html();
            // 获取选择的书籍名称
            let nameOne = $(".cartList ul").eq(index).children(".boosName").html();
            // 截取价格信息得到浮点的价格
            let intPrice = parseFloat(priceO.substring(1, priceO.length));
            // 得到所选书籍的名字 
            nameAll += "《"+nameOne + "》";

            // 累加价格
            accountPrice += intPrice;
            msgBox = `选择了书籍：${nameAll} 共计：￥${accountPrice}`;
        }

    }
     // 判断是否已经结算，如果已经结算之后就不能再次结算（添加节点）
     let lastp = $(this).next().length;
     // 创建p标签并添加内容
     let aPrice = $("<p></p>").html(msgBox);
     if (lastp == 0) {
         // 判断是否有选择书籍
         if (accountPrice == "") {
             alert(`请选择书籍！`);
         } else {
             $(".cartList").append(aPrice);
         }
     }
     //如果已经结算后，更改商品信息将覆盖掉之前结算的信息
     if (lastp == 1) {
         $(".cartList>p").replaceWith(aPrice);
     }
      // 总价
    $(".endPrice").on("click", function () {
        // 声明变量接收总价
        let accountPrice = 0;
        // 接收书名
        let nameAll = ""
        let isCheck = true;
        // 结算后总提示信息
        let msgBox = " ";
        for (let index = 0; index < ulLen; index++) {
            // 判断勾选框是否勾选，如果勾选则结算
            isCheck = $(".cartList").find($("input[name=choose")).eq(index).prop("checked");
            if (isCheck) {
                // 循环得到价格信息
                let priceO = $(".cartList ul").eq(index).children("#price").html();
                // 获取选择的书籍名称
                let nameOne = $(".cartList ul").eq(index).children(".boosName").html();
                // 截取价格信息得到浮点的价格
                let intPrice = parseFloat(priceO.substring(1, priceO.length));
                // 得到所选书籍的名字 
                nameAll += "《"+nameOne + "》";
                // 累加价格
                accountPrice += intPrice;
                msgBox = `选择了书籍：${nameAll} 共计：￥${accountPrice}`;
            }
        }
        // 判断结算下面是不是有其他标签，如果已经结算之后就不能再次结算
        let lastp = $(this).next().length;
        // 创建p标签并添加内容
        let aPrice = $("<p></p>").html(msgBox);
        if (lastp == 0) {
            // 判断是否有选择书籍
            if (accountPrice == "") {
                alert(`请选择书籍！`);
            } else {
                $(".cartList").append(aPrice);
            }
        }
        if (lastp == 1) {
            $(".cartList>p").replaceWith(aPrice);
        }
    });